package kotlinquanweizhinan.chapt09.also

import java.io.File

class test {
}

fun main() {
    /*
    * also函数和let函数功能相似。和let一样，also也是把接收者作为值参传给lambda。但有一点不同：
    * also返回接收者对象，而leet返回lambda结果
    * 因为这个差异，also尤其适合针对同一原始对象，利用副作用做事。例如，在下在这个例子里，alse被调用
    * 了两次，每次做一件事:打印文件名一次，把文件内容赋值给fileContents变量一次。
    * 既然alse返回的是接收者对象，你就可以基于原始接收者对象执行额外的链式调用。
    * */

    var fileContents:List<String>
    File("file.txt")
        .also {
            print(it.name)
        }.also {
            fileContents = it.readLines()
        }
}